
//面试题16.24.数对和
class Solution {
public:
    vector<vector<int>> pairSums(vector<int>& nums, int target) {
        //与判断数对和个数题目类似,只不过此题需要将结果放入到数组中去
        int n=nums.size();
        unordered_map<int,int> m;  //存储左边的所有数据及个数
        
        vector<vector<int>> ret;  //存储结果
        for(int i=0;i<n;i++)
        {
            int need=target-nums[i];
            if(m.count(need))          //判断左边是否存在需要的数
            {
                ret.push_back({need,nums[i]});

                if(--m[need]==0) m.erase(need);
            }
            else m[nums[i]]++;   //将该位置放入到哈希表中
        }
        return ret;
    }
};